<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FabGL: serialport.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">FabGL
   </div>
   <div id="projectbrief">ESP32 Display Controller and Graphics Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('serialport_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle"><div class="title">serialport.h</div></div>
</div><!--header-->
<div class="contents">
<a href="serialport_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">  Created by Fabrizio Di Vittorio (fdivitto2013@gmail.com) - &lt;http://www.fabgl.com&gt;</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">  Copyright (c) 2019-2022 Fabrizio Di Vittorio.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment">  All rights reserved.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"></span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment"></span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">* Please contact fdivitto2013@gmail.com if you need a commercial license.</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment"></span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment"></span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="comment">* This library and related software is available under GPL v3.</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"></span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="comment">  FabGL is free software: you can redistribute it and/or modify</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="comment">  it under the terms of the GNU General Public License as published by</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="comment">  the Free Software Foundation, either version 3 of the License, or</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="comment">  (at your option) any later version.</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="comment"></span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="comment">  FabGL is distributed in the hope that it will be useful,</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="comment">  but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="comment">  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="comment">  GNU General Public License for more details.</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="comment"></span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="comment">  You should have received a copy of the GNU General Public License</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="comment">  along with FabGL.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="comment"> */</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#include &quot;freertos/FreeRTOS.h&quot;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;soc/uart_struct.h&quot;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#include &quot;<a class="code" href="fabutils_8h.html">fabutils.h</a>&quot;</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="preprocessor">#include &quot;<a class="code" href="fabglconf_8h.html">fabglconf.h</a>&quot;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#include &quot;<a class="code" href="terminal_8h.html">terminal.h</a>&quot;</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="keyword">namespace </span>fabgl {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#gae88006c219f95bae663fe0f2a2561dd7">   54</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#gae88006c219f95bae663fe0f2a2561dd7">FlowControl</a> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>  None,              </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>  <a class="code hl_enumvalue" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#ggae88006c219f95bae663fe0f2a2561dd7a719d067b229178f03bcfa1da4ac4dede">Software</a>,          </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>  <a class="code hl_enumvalue" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#ggae88006c219f95bae663fe0f2a2561dd7a3c02a379965ab0dfcd77b1c484450433">Hardware</a>,          </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>  <a class="code hl_enumvalue" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#ggae88006c219f95bae663fe0f2a2561dd7aa1e74360bdc370e9471d00cedfdeecbe">Hardsoft</a>,          </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>};</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port.html">   65</a></span><span class="keyword">class </span><a class="code hl_class" href="classfabgl_1_1_serial_port.html">SerialPort</a> {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>  <span class="keyword">typedef</span> void (*RXCallback)(<span class="keywordtype">void</span> * args, uint8_t value, <span class="keywordtype">bool</span> fromISR);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>  <span class="keyword">typedef</span> bool (*RXReadyCallback)(<span class="keywordtype">void</span> * args, <span class="keywordtype">bool</span> fromISR);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>  <span class="keyword">typedef</span> void (*LineStatusCallback)(<span class="keywordtype">void</span> * args, <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_afeea3554d4db1d516bef6d24fdfdcc3f.html#afeea3554d4db1d516bef6d24fdfdcc3f">parityError</a>, <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_af68a9e5366f3df37bc0e13f01f3cca22.html#af68a9e5366f3df37bc0e13f01f3cca22">framingError</a>, <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_ab693fa3b1ed484e0fc51fd9d71f65d81.html#ab693fa3b1ed484e0fc51fd9d71f65d81">overflowError</a>, <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a774b6949333a3d03646526e004c42b1a.html#a774b6949333a3d03646526e004c42b1a">breakDetected</a>, <span class="keywordtype">bool</span> fromISR);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>  <a class="code hl_class" href="classfabgl_1_1_serial_port.html">SerialPort</a>();</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>  </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>  <span class="keywordtype">void</span> setCallbacks(<span class="keywordtype">void</span> * args, RXReadyCallback rxReadyCallback, RXCallback rxCallback, LineStatusCallback lineStatusCallback = <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_ab2a7ecccb5b97ac2321800385728b97c.html#ab2a7ecccb5b97ac2321800385728b97c">setSignals</a>(<span class="keywordtype">int</span> rxPin, <span class="keywordtype">int</span> txPin, <span class="keywordtype">int</span> rtsPin = -1, <span class="keywordtype">int</span> ctsPin = -1, <span class="keywordtype">int</span> dtrPin = -1, <span class="keywordtype">int</span> dsrPin = -1, <span class="keywordtype">int</span> dcdPin = -1, <span class="keywordtype">int</span> riPin = -1);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>  </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a2325d457e2966a30ff6513ea3f6f9a3e.html#a2325d457e2966a30ff6513ea3f6f9a3e">setup</a>(<span class="keywordtype">int</span> uartIndex, uint32_t baud, <span class="keywordtype">int</span> dataLength, <span class="keywordtype">char</span> parity, <span class="keywordtype">float</span> stopBits, <a class="code hl_enumeration" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#gae88006c219f95bae663fe0f2a2561dd7">FlowControl</a> <a class="code hl_function" href="classfabgl_1_1_serial_port_adf2404af2ad4bb11154ecb712b7b0c97.html#adf2404af2ad4bb11154ecb712b7b0c97">flowControl</a>, <span class="keywordtype">bool</span> inverted = <span class="keyword">false</span>);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>  </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a08771dc5021b5caf7d0ffd8938b0feda.html#a08771dc5021b5caf7d0ffd8938b0feda">setBaud</a>(<span class="keywordtype">int</span> value);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>  </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a258f23d433f1e9c15f0fa86ea7f59e94.html#a258f23d433f1e9c15f0fa86ea7f59e94">setFrame</a>(<span class="keywordtype">int</span> dataLength, <span class="keywordtype">char</span> parity, <span class="keywordtype">float</span> stopBits);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>  </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_adf2404af2ad4bb11154ecb712b7b0c97.html#adf2404af2ad4bb11154ecb712b7b0c97">flowControl</a>(<span class="keywordtype">bool</span> enableRX);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span>  </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_af8142810dfa41077384608e625d91a83.html#af8142810dfa41077384608e625d91a83">readyToSend</a>();</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>  </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_ab3aa6a8b37d2b4c5a1dfb4db904f660c.html#ab3aa6a8b37d2b4c5a1dfb4db904f660c">  156</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_ab3aa6a8b37d2b4c5a1dfb4db904f660c.html#ab3aa6a8b37d2b4c5a1dfb4db904f660c">readyToReceive</a>()                { <span class="keywordflow">return</span> !m_sentXOFF; }</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>  </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_a0e887830311eba8605002670b70699ed.html#a0e887830311eba8605002670b70699ed">  163</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a0e887830311eba8605002670b70699ed.html#a0e887830311eba8605002670b70699ed">initialized</a>()                   { <span class="keywordflow">return</span> m_initialized; }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>  </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_ad1fd20c20148243054588e87df747ab3.html#ad1fd20c20148243054588e87df747ab3">  170</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_ad1fd20c20148243054588e87df747ab3.html#ad1fd20c20148243054588e87df747ab3">CTSStatus</a>()                     { <span class="keywordflow">return</span> m_ctsPin != GPIO_UNUSED ? gpio_get_level(m_ctsPin) == 0 : <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a1612d5dfae8ceeaca66f09fff9ec6c46.html#a1612d5dfae8ceeaca66f09fff9ec6c46">setRTSStatus</a>(<span class="keywordtype">bool</span> value);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_a5bcaf5e465dc0194b83c47053744140f.html#a5bcaf5e465dc0194b83c47053744140f">  186</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a5bcaf5e465dc0194b83c47053744140f.html#a5bcaf5e465dc0194b83c47053744140f">RTSStatus</a>()                     { <span class="keywordflow">return</span> m_RTSStatus; }</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a2af5126b1f3b1d147d215343e9dde306.html#a2af5126b1f3b1d147d215343e9dde306">setDTRStatus</a>(<span class="keywordtype">bool</span> value);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_afa96d0bf0c0d9ed64177a1ccae86b935.html#afa96d0bf0c0d9ed64177a1ccae86b935">  200</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_afa96d0bf0c0d9ed64177a1ccae86b935.html#afa96d0bf0c0d9ed64177a1ccae86b935">DTRStatus</a>()                     { <span class="keywordflow">return</span> m_DTRStatus; }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_a0666092b78f31833861eca0f2fd1358f.html#a0666092b78f31833861eca0f2fd1358f">  207</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a0666092b78f31833861eca0f2fd1358f.html#a0666092b78f31833861eca0f2fd1358f">DSRStatus</a>()                     { <span class="keywordflow">return</span> m_dsrPin != GPIO_UNUSED ? gpio_get_level(m_dsrPin) == 0 : <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_a0c7cdb8dd69522529061580766cdab24.html#a0c7cdb8dd69522529061580766cdab24">  214</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a0c7cdb8dd69522529061580766cdab24.html#a0c7cdb8dd69522529061580766cdab24">DCDStatus</a>()                     { <span class="keywordflow">return</span> m_dcdPin != GPIO_UNUSED ? gpio_get_level(m_dcdPin) == 0 : <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_aeaea07f7202930c796e4a66438ec9331.html#aeaea07f7202930c796e4a66438ec9331">  221</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_aeaea07f7202930c796e4a66438ec9331.html#aeaea07f7202930c796e4a66438ec9331">RIStatus</a>()                      { <span class="keywordflow">return</span> m_riPin != GPIO_UNUSED ? gpio_get_level(m_riPin) == 0 : <span class="keyword">false</span>; }</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_ac2c4347f8a0459fe5784e701494598ee.html#ac2c4347f8a0459fe5784e701494598ee">send</a>(uint8_t value);</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>  </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a013585e92e02526bec54cf420abf9a06.html#a013585e92e02526bec54cf420abf9a06">sendBreak</a>(<span class="keywordtype">bool</span> value);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>  </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_afeea3554d4db1d516bef6d24fdfdcc3f.html#afeea3554d4db1d516bef6d24fdfdcc3f">  244</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_afeea3554d4db1d516bef6d24fdfdcc3f.html#afeea3554d4db1d516bef6d24fdfdcc3f">parityError</a>()   { <span class="keyword">auto</span> r = m_parityError; m_parityError = <span class="keyword">false</span>; <span class="keywordflow">return</span> r; }</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span>  </div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_af68a9e5366f3df37bc0e13f01f3cca22.html#af68a9e5366f3df37bc0e13f01f3cca22">  253</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_af68a9e5366f3df37bc0e13f01f3cca22.html#af68a9e5366f3df37bc0e13f01f3cca22">framingError</a>()  { <span class="keyword">auto</span> r = m_framingError; m_framingError = <span class="keyword">false</span>; <span class="keywordflow">return</span> r; }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span>  </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_ab693fa3b1ed484e0fc51fd9d71f65d81.html#ab693fa3b1ed484e0fc51fd9d71f65d81">  262</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_ab693fa3b1ed484e0fc51fd9d71f65d81.html#ab693fa3b1ed484e0fc51fd9d71f65d81">overflowError</a>() { <span class="keyword">auto</span> r = m_overflowError; m_overflowError = <span class="keyword">false</span>; <span class="keywordflow">return</span> r; }</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span> </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_a774b6949333a3d03646526e004c42b1a.html#a774b6949333a3d03646526e004c42b1a">  271</a></span>  <span class="keywordtype">bool</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_a774b6949333a3d03646526e004c42b1a.html#a774b6949333a3d03646526e004c42b1a">breakDetected</a>() { <span class="keyword">auto</span> r = m_breakDetected; m_breakDetected = <span class="keyword">false</span>; <span class="keywordflow">return</span> r; }</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span> </div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span>  <span class="keywordtype">int</span> uartGetRXFIFOCount();</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span>  <span class="keywordtype">void</span> uartFlushTXFIFO();</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span>  <span class="keywordtype">void</span> uartFlushRXFIFO();</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> IRAM_ATTR uart_isr(<span class="keywordtype">void</span> * arg);</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span>  <span class="comment">//static void uart_on_apb_change(void * arg, apb_change_ev_t ev_type, uint32_t old_apb, uint32_t new_apb);</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>  <span class="keywordtype">bool</span>                      m_initialized;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>  <span class="keywordtype">int</span>                       m_idx;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>  <span class="keyword">volatile</span> uart_dev_t *     m_dev;</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>  </div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span>  <span class="keywordtype">bool</span>                      m_inverted;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>  </div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span>  gpio_num_t                m_rxPin;</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span>  gpio_num_t                m_txPin;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span>  gpio_num_t                m_rtsPin;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span>  gpio_num_t                m_ctsPin;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span>  gpio_num_t                m_dtrPin;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span>  gpio_num_t                m_dsrPin;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span>  gpio_num_t                m_dcdPin;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>  gpio_num_t                m_riPin;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span>  </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span>  <span class="keywordtype">bool</span>                      m_RTSStatus;      <span class="comment">// true = asserted (low)</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>  <span class="keywordtype">bool</span>                      m_DTRStatus;      <span class="comment">// true = asserted (low)</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span>  </div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span>  <span class="keyword">volatile</span> <a class="code hl_enumeration" href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#gae88006c219f95bae663fe0f2a2561dd7">FlowControl</a>      m_flowControl;</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span>             m_sentXOFF;       <span class="comment">// true if XOFF has been sent or RTS is disabled (high)</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span>             m_recvXOFF;       <span class="comment">// true if XOFF has been received</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno">  303</span>  </div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span>  <span class="keywordtype">void</span> *                    m_callbackArgs;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span>  RXReadyCallback           m_rxReadyCallback;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>  RXCallback                m_rxCallback;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span>  LineStatusCallback        m_lineStatusCallback;</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span>  </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span>             m_parityError;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span>             m_framingError;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span>             m_overflowError;</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span>             m_breakDetected;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span> </div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>};</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span> </div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span> </div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_terminal_connector.html">  321</a></span><span class="keyword">class </span><a class="code hl_class" href="classfabgl_1_1_serial_port_terminal_connector.html">SerialPortTerminalConnector</a> {</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>  <a class="code hl_class" href="classfabgl_1_1_serial_port_terminal_connector.html">SerialPortTerminalConnector</a>();</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span>  <a class="code hl_class" href="classfabgl_1_1_serial_port_terminal_connector.html">SerialPortTerminalConnector</a>(<a class="code hl_class" href="classfabgl_1_1_serial_port.html">SerialPort</a> * serialPort, <a class="code hl_class" href="classfabgl_1_1_terminal.html">Terminal</a> * terminal);</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span>  <span class="keywordtype">void</span> connect(<a class="code hl_class" href="classfabgl_1_1_serial_port.html">SerialPort</a> * serialPort, <a class="code hl_class" href="classfabgl_1_1_terminal.html">Terminal</a> * terminal);</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span> </div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="classfabgl_1_1_serial_port_terminal_connector_a4e2c950db07da337819f6e47e91c8d9a.html#a4e2c950db07da337819f6e47e91c8d9a">  334</a></span>  <span class="keywordtype">void</span> <a class="code hl_function" href="classfabgl_1_1_serial_port_terminal_connector_a4e2c950db07da337819f6e47e91c8d9a.html#a4e2c950db07da337819f6e47e91c8d9a">disableSerialPortRX</a>(<span class="keywordtype">bool</span> value)         { m_serialPortRXEnabled = !value; }</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span> </div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> rxCallback(<span class="keywordtype">void</span> * args, uint8_t value, <span class="keywordtype">bool</span> fromISR);</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> rxReadyCallback(<span class="keywordtype">void</span> * args, <span class="keywordtype">bool</span> fromISR);</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>  </div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>  <a class="code hl_class" href="classfabgl_1_1_terminal.html">Terminal</a> *    m_terminal;</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span>  <a class="code hl_class" href="classfabgl_1_1_serial_port.html">SerialPort</a> *  m_serialPort;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span> </div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span>  <span class="comment">// if false all inputs from UART are discarded</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span>  <span class="keyword">volatile</span> <span class="keywordtype">bool</span> m_serialPortRXEnabled;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>};</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span> </div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span> </div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span>} <span class="comment">// end of namespace</span></div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span> </div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span> </div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a013585e92e02526bec54cf420abf9a06_html_a013585e92e02526bec54cf420abf9a06"><div class="ttname"><a href="classfabgl_1_1_serial_port_a013585e92e02526bec54cf420abf9a06.html#a013585e92e02526bec54cf420abf9a06">fabgl::SerialPort::sendBreak</a></div><div class="ttdeci">void sendBreak(bool value)</div><div class="ttdoc">Activates or disattivaes Break.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00336">serialport.cpp:336</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a0666092b78f31833861eca0f2fd1358f_html_a0666092b78f31833861eca0f2fd1358f"><div class="ttname"><a href="classfabgl_1_1_serial_port_a0666092b78f31833861eca0f2fd1358f.html#a0666092b78f31833861eca0f2fd1358f">fabgl::SerialPort::DSRStatus</a></div><div class="ttdeci">bool DSRStatus()</div><div class="ttdoc">Reports current DSR signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00207">serialport.h:207</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a08771dc5021b5caf7d0ffd8938b0feda_html_a08771dc5021b5caf7d0ffd8938b0feda"><div class="ttname"><a href="classfabgl_1_1_serial_port_a08771dc5021b5caf7d0ffd8938b0feda.html#a08771dc5021b5caf7d0ffd8938b0feda">fabgl::SerialPort::setBaud</a></div><div class="ttdeci">void setBaud(int value)</div><div class="ttdoc">Changes baud rate.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00254">serialport.cpp:254</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a0c7cdb8dd69522529061580766cdab24_html_a0c7cdb8dd69522529061580766cdab24"><div class="ttname"><a href="classfabgl_1_1_serial_port_a0c7cdb8dd69522529061580766cdab24.html#a0c7cdb8dd69522529061580766cdab24">fabgl::SerialPort::DCDStatus</a></div><div class="ttdeci">bool DCDStatus()</div><div class="ttdoc">Reports current DCD signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00214">serialport.h:214</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a0e887830311eba8605002670b70699ed_html_a0e887830311eba8605002670b70699ed"><div class="ttname"><a href="classfabgl_1_1_serial_port_a0e887830311eba8605002670b70699ed.html#a0e887830311eba8605002670b70699ed">fabgl::SerialPort::initialized</a></div><div class="ttdeci">bool initialized()</div><div class="ttdoc">Checks if the object is initialized.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00163">serialport.h:163</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a1612d5dfae8ceeaca66f09fff9ec6c46_html_a1612d5dfae8ceeaca66f09fff9ec6c46"><div class="ttname"><a href="classfabgl_1_1_serial_port_a1612d5dfae8ceeaca66f09fff9ec6c46.html#a1612d5dfae8ceeaca66f09fff9ec6c46">fabgl::SerialPort::setRTSStatus</a></div><div class="ttdeci">void setRTSStatus(bool value)</div><div class="ttdoc">Sets RTS signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00107">serialport.cpp:107</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a2325d457e2966a30ff6513ea3f6f9a3e_html_a2325d457e2966a30ff6513ea3f6f9a3e"><div class="ttname"><a href="classfabgl_1_1_serial_port_a2325d457e2966a30ff6513ea3f6f9a3e.html#a2325d457e2966a30ff6513ea3f6f9a3e">fabgl::SerialPort::setup</a></div><div class="ttdeci">void setup(int uartIndex, uint32_t baud, int dataLength, char parity, float stopBits, FlowControl flowControl, bool inverted=false)</div><div class="ttdoc">Configures and activates specified UART.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00176">serialport.cpp:176</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a258f23d433f1e9c15f0fa86ea7f59e94_html_a258f23d433f1e9c15f0fa86ea7f59e94"><div class="ttname"><a href="classfabgl_1_1_serial_port_a258f23d433f1e9c15f0fa86ea7f59e94.html#a258f23d433f1e9c15f0fa86ea7f59e94">fabgl::SerialPort::setFrame</a></div><div class="ttdeci">void setFrame(int dataLength, char parity, float stopBits)</div><div class="ttdoc">Changes frame structure.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00262">serialport.cpp:262</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a2af5126b1f3b1d147d215343e9dde306_html_a2af5126b1f3b1d147d215343e9dde306"><div class="ttname"><a href="classfabgl_1_1_serial_port_a2af5126b1f3b1d147d215343e9dde306.html#a2af5126b1f3b1d147d215343e9dde306">fabgl::SerialPort::setDTRStatus</a></div><div class="ttdeci">void setDTRStatus(bool value)</div><div class="ttdoc">Sets DTR signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00116">serialport.cpp:116</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a5bcaf5e465dc0194b83c47053744140f_html_a5bcaf5e465dc0194b83c47053744140f"><div class="ttname"><a href="classfabgl_1_1_serial_port_a5bcaf5e465dc0194b83c47053744140f.html#a5bcaf5e465dc0194b83c47053744140f">fabgl::SerialPort::RTSStatus</a></div><div class="ttdeci">bool RTSStatus()</div><div class="ttdoc">Reports current RTS signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00186">serialport.h:186</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_a774b6949333a3d03646526e004c42b1a_html_a774b6949333a3d03646526e004c42b1a"><div class="ttname"><a href="classfabgl_1_1_serial_port_a774b6949333a3d03646526e004c42b1a.html#a774b6949333a3d03646526e004c42b1a">fabgl::SerialPort::breakDetected</a></div><div class="ttdeci">bool breakDetected()</div><div class="ttdoc">Gets Break detected flag status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00271">serialport.h:271</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_ab2a7ecccb5b97ac2321800385728b97c_html_ab2a7ecccb5b97ac2321800385728b97c"><div class="ttname"><a href="classfabgl_1_1_serial_port_ab2a7ecccb5b97ac2321800385728b97c.html#ab2a7ecccb5b97ac2321800385728b97c">fabgl::SerialPort::setSignals</a></div><div class="ttdeci">void setSignals(int rxPin, int txPin, int rtsPin=-1, int ctsPin=-1, int dtrPin=-1, int dsrPin=-1, int dcdPin=-1, int riPin=-1)</div><div class="ttdoc">Associates GPIOs to serial port signals.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00125">serialport.cpp:125</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_ab3aa6a8b37d2b4c5a1dfb4db904f660c_html_ab3aa6a8b37d2b4c5a1dfb4db904f660c"><div class="ttname"><a href="classfabgl_1_1_serial_port_ab3aa6a8b37d2b4c5a1dfb4db904f660c.html#ab3aa6a8b37d2b4c5a1dfb4db904f660c">fabgl::SerialPort::readyToReceive</a></div><div class="ttdeci">bool readyToReceive()</div><div class="ttdoc">Reports whether RX is active.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00156">serialport.h:156</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_ab693fa3b1ed484e0fc51fd9d71f65d81_html_ab693fa3b1ed484e0fc51fd9d71f65d81"><div class="ttname"><a href="classfabgl_1_1_serial_port_ab693fa3b1ed484e0fc51fd9d71f65d81.html#ab693fa3b1ed484e0fc51fd9d71f65d81">fabgl::SerialPort::overflowError</a></div><div class="ttdeci">bool overflowError()</div><div class="ttdoc">Gets overflow error status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00262">serialport.h:262</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_ac2c4347f8a0459fe5784e701494598ee_html_ac2c4347f8a0459fe5784e701494598ee"><div class="ttname"><a href="classfabgl_1_1_serial_port_ac2c4347f8a0459fe5784e701494598ee.html#ac2c4347f8a0459fe5784e701494598ee">fabgl::SerialPort::send</a></div><div class="ttdeci">void send(uint8_t value)</div><div class="ttdoc">Sends a byte.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00328">serialport.cpp:328</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_ad1fd20c20148243054588e87df747ab3_html_ad1fd20c20148243054588e87df747ab3"><div class="ttname"><a href="classfabgl_1_1_serial_port_ad1fd20c20148243054588e87df747ab3.html#ad1fd20c20148243054588e87df747ab3">fabgl::SerialPort::CTSStatus</a></div><div class="ttdeci">bool CTSStatus()</div><div class="ttdoc">Reports current CTS signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00170">serialport.h:170</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_adf2404af2ad4bb11154ecb712b7b0c97_html_adf2404af2ad4bb11154ecb712b7b0c97"><div class="ttname"><a href="classfabgl_1_1_serial_port_adf2404af2ad4bb11154ecb712b7b0c97.html#adf2404af2ad4bb11154ecb712b7b0c97">fabgl::SerialPort::flowControl</a></div><div class="ttdeci">void flowControl(bool enableRX)</div><div class="ttdoc">Allows/disallows host to send data.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00284">serialport.cpp:284</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_aeaea07f7202930c796e4a66438ec9331_html_aeaea07f7202930c796e4a66438ec9331"><div class="ttname"><a href="classfabgl_1_1_serial_port_aeaea07f7202930c796e4a66438ec9331.html#aeaea07f7202930c796e4a66438ec9331">fabgl::SerialPort::RIStatus</a></div><div class="ttdeci">bool RIStatus()</div><div class="ttdoc">Reports current RI signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00221">serialport.h:221</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_af68a9e5366f3df37bc0e13f01f3cca22_html_af68a9e5366f3df37bc0e13f01f3cca22"><div class="ttname"><a href="classfabgl_1_1_serial_port_af68a9e5366f3df37bc0e13f01f3cca22.html#af68a9e5366f3df37bc0e13f01f3cca22">fabgl::SerialPort::framingError</a></div><div class="ttdeci">bool framingError()</div><div class="ttdoc">Gets framing error status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00253">serialport.h:253</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_af8142810dfa41077384608e625d91a83_html_af8142810dfa41077384608e625d91a83"><div class="ttname"><a href="classfabgl_1_1_serial_port_af8142810dfa41077384608e625d91a83.html#af8142810dfa41077384608e625d91a83">fabgl::SerialPort::readyToSend</a></div><div class="ttdeci">bool readyToSend()</div><div class="ttdoc">Checks if TX is enabled looking for XOFF received or reading CTS.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8cpp_source.html#l00317">serialport.cpp:317</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_afa96d0bf0c0d9ed64177a1ccae86b935_html_afa96d0bf0c0d9ed64177a1ccae86b935"><div class="ttname"><a href="classfabgl_1_1_serial_port_afa96d0bf0c0d9ed64177a1ccae86b935.html#afa96d0bf0c0d9ed64177a1ccae86b935">fabgl::SerialPort::DTRStatus</a></div><div class="ttdeci">bool DTRStatus()</div><div class="ttdoc">Reports current DTR signal status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00200">serialport.h:200</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_afeea3554d4db1d516bef6d24fdfdcc3f_html_afeea3554d4db1d516bef6d24fdfdcc3f"><div class="ttname"><a href="classfabgl_1_1_serial_port_afeea3554d4db1d516bef6d24fdfdcc3f.html#afeea3554d4db1d516bef6d24fdfdcc3f">fabgl::SerialPort::parityError</a></div><div class="ttdeci">bool parityError()</div><div class="ttdoc">Gets parity error status.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00244">serialport.h:244</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_html"><div class="ttname"><a href="classfabgl_1_1_serial_port.html">fabgl::SerialPort</a></div><div class="ttdoc">SerialPort class handles UART setup and communications.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00065">serialport.h:65</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_terminal_connector_a4e2c950db07da337819f6e47e91c8d9a_html_a4e2c950db07da337819f6e47e91c8d9a"><div class="ttname"><a href="classfabgl_1_1_serial_port_terminal_connector_a4e2c950db07da337819f6e47e91c8d9a.html#a4e2c950db07da337819f6e47e91c8d9a">fabgl::SerialPortTerminalConnector::disableSerialPortRX</a></div><div class="ttdeci">void disableSerialPortRX(bool value)</div><div class="ttdoc">Disables/Enables serial port RX.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00334">serialport.h:334</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_serial_port_terminal_connector_html"><div class="ttname"><a href="classfabgl_1_1_serial_port_terminal_connector.html">fabgl::SerialPortTerminalConnector</a></div><div class="ttdoc">SerialPortTerminalConnector is an helper class used to connect Terminal and SerialPort.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00321">serialport.h:321</a></div></div>
<div class="ttc" id="aclassfabgl_1_1_terminal_html"><div class="ttname"><a href="classfabgl_1_1_terminal.html">fabgl::Terminal</a></div><div class="ttdoc">An ANSI-VT100 compatible display terminal.</div><div class="ttdef"><b>Definition:</b> <a href="terminal_8h_source.html#l00886">terminal.h:886</a></div></div>
<div class="ttc" id="afabglconf_8h_html"><div class="ttname"><a href="fabglconf_8h.html">fabglconf.h</a></div><div class="ttdoc">This file contains FabGL library configuration settings, like number of supported colors,...</div></div>
<div class="ttc" id="afabutils_8h_html"><div class="ttname"><a href="fabutils_8h.html">fabutils.h</a></div><div class="ttdoc">This file contains some utility classes and functions.</div></div>
<div class="ttc" id="agroup___enumerations_gae88006c219f95bae663fe0f2a2561dd7_html_gae88006c219f95bae663fe0f2a2561dd7"><div class="ttname"><a href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#gae88006c219f95bae663fe0f2a2561dd7">fabgl::FlowControl</a></div><div class="ttdeci">FlowControl</div><div class="ttdoc">This enum defines various serial port flow control methods.</div><div class="ttdef"><b>Definition:</b> <a href="serialport_8h_source.html#l00054">serialport.h:54</a></div></div>
<div class="ttc" id="agroup___enumerations_gae88006c219f95bae663fe0f2a2561dd7_html_ggae88006c219f95bae663fe0f2a2561dd7a3c02a379965ab0dfcd77b1c484450433"><div class="ttname"><a href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#ggae88006c219f95bae663fe0f2a2561dd7a3c02a379965ab0dfcd77b1c484450433">fabgl::FlowControl::Hardware</a></div><div class="ttdeci">@ Hardware</div></div>
<div class="ttc" id="agroup___enumerations_gae88006c219f95bae663fe0f2a2561dd7_html_ggae88006c219f95bae663fe0f2a2561dd7a719d067b229178f03bcfa1da4ac4dede"><div class="ttname"><a href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#ggae88006c219f95bae663fe0f2a2561dd7a719d067b229178f03bcfa1da4ac4dede">fabgl::FlowControl::Software</a></div><div class="ttdeci">@ Software</div></div>
<div class="ttc" id="agroup___enumerations_gae88006c219f95bae663fe0f2a2561dd7_html_ggae88006c219f95bae663fe0f2a2561dd7aa1e74360bdc370e9471d00cedfdeecbe"><div class="ttname"><a href="group___enumerations_gae88006c219f95bae663fe0f2a2561dd7.html#ggae88006c219f95bae663fe0f2a2561dd7aa1e74360bdc370e9471d00cedfdeecbe">fabgl::FlowControl::Hardsoft</a></div><div class="ttdeci">@ Hardsoft</div></div>
<div class="ttc" id="aterminal_8h_html"><div class="ttname"><a href="terminal_8h.html">terminal.h</a></div><div class="ttdoc">This file contains fabgl::Terminal definition.</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b741fed86bf5fa30eab98075f2fe4281.html">comdrivers</a></li><li class="navelem"><a class="el" href="serialport_8h.html">serialport.h</a></li>
    <li class="footer">Generated on Mon Aug 29 2022 13:52:04 for FabGL by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3 </li>
  </ul>
</div>
</body>
</html>
